0 REM YATZY - ROBERT B. COOK 100 GOSUB380:GOSUB412:GOSUB326 102 GOSUB114:GOSUB174 104 GOSUB202:GOSUB286 106 C1=C1+1:IFC1=NP*13THEN314 108 PL=PL+1:IFPL>NPTHENPL=1 110 GOTO102 112 = START = 114 PRINT"[146][144]"TAB(58)LEFT$("[180][144]#1 [180][144]#2 [180][144]#3 [180][144]#4 [181]",NP*6+2) 116 PRINT""TAB(54+PL*4)" #"MID$(STR$(PL),2)" [146][180]" 118 RL=1:PRINTDN$TAB(36)"[145]"RN$(1) 120 FORL1=1TO5:POKE2040+L1,200:DI(L1)=0:NEXT:POKESP+21,62 122 GOSUB130:IFRL=4THENRETURN 124 GOSUB154:IFRD>0THEN122 126 RETURN 128 = ROLL DICE = 130 FORL1=1TO5 132 IFDI(L1)=0THENDN(L1)=INT(RND(1)*6+1) 134 NEXT 136 FORL1=1TO5:IFDI(L1)=1THEN146 138 T1=INT(RND(1)*6+1) 140 POKEWV,129:POKELF,85:POKEHF,36 142 POKE2040+L1,192+T1:FORL2=1TO25:NEXT:POKEWV,128 144 DI(L1)=1:IFT1<>DN(L1)THEN138 146 NEXT 148 RL=RL+1:IFRL<4THENPRINTDN$TAB(36)"[145]"RN$(RL) 150 RETURN 152 = CHOOSE DICE = 154 POKESP+1,92:POKESP+21,63:RD=0:T1=1 156 JS=PEEK(56320)AND31:IFJS=31THEN156 158 IFJS=15ANDT1=0THENFORL1=1TO5:POKE2040+L1,192+DN(L1):DI(L1)=1:NEXT:RD=0 160 IFJS=15ANDT1=6THEN170 162 IFJS=15ANDT1>0THENPOKE2040+T1,200:RD=RD+1:DI(T1)=0 164 IFJS=29THENT1=T1+1:IFT1>6THENT1=6 166 IFJS=30THENT1=T1-1:IFT1<0THENT1=0 168 POKESP+1,68+24*T1:FORL1=1TO99:NEXT:GOTO156 170 WAIT56320,16,15:RETURN 172 = CHOOSE LINE = 174 POKESP+21,254 176 LN=1:POKESP+15,86 178 JS=PEEK(56320)AND31:IFJS=31THEN178 180 IFJS=15ANDMX(PL,LN)=0THENRETURN 182 IFJS=15THENGOSUB308 184 FORL1=1TO99:NEXT:IFJS=30THEN194 186 IFJS<>29THEN178 188 LN=LN+1:IFLN=7THENLN=11 190 IFLN>17THENLN=1 192 GOTO198 194 LN=LN-1:IFLN=10THENLN=6 196 IFLN<1THENLN=17 198 POKESP+15,78+LN*8:GOTO178 200 = CALCULATE = 202 SC=0:MX(PL,LN)=1 204 ON-(LN<7)GOTO208:GOTO222 206 = UPPER = 208 FORL1=1TO5 210 IFDN(L1)=LNTHENSC=SC+LN 212 NEXT 214 SC(PL,1)=SC(PL,1)+SC:IFSC(PL,1)>62THENSC(PL,2)=35 216 SC(PL,3)=SC(PL,1)+SC(PL,2):SC(PL,5)=SC(PL,3)+SC(PL,4) 218 RETURN 220 = LOWER = 222 T1=0:T2=0:SC=0 224 FORL1=1TO6:CT(L1)=0:NEXT 226 FORL1=1TO5:T2=T2+DN(L1):FORL2=1TO6 228 IFDN(L1)=L2THENCT(L2)=CT(L2)+1 230 NEXT:NEXT 232 ONLN-10GOSUB240,240,250,262,262,274,282 234 SC(PL,4)=SC(PL,4)+SC:SC(PL,5)=SC(PL,3)+SC(PL,4) 236 RETURN 238 * 3 OR 4 OF A KIND * 240 FORL1=1TO6 242 IFLN=11ANDCT(L1)>2THENSC=T2 244 IFLN=12ANDCT(L1)>3THENSC=T2 246 NEXT:RETURN 248 * FULL HOUSE * 250 FORL1=1TO6 252 IFCT(L1)=2THENT1=T1+2 254 IFCT(L1)=3THENT1=T1+3 256 IFT1=5THENSC=25 258 NEXT:RETURN 260 * SMALL STRAIGHT OR LARGE STRAIGHT * 262 FORL1=1TO6 264 T1=T1+1:IFCT(L1)=0THENT1=0 266 IFLN=14ANDT1=4THENSC=30 268 IFLN=15ANDT1=5THENSC=40 270 NEXT:RETURN 272 * YATZY * 274 FORL1=1TO6 276 IFCT(L1)=5THENSC=50 278 NEXT:RETURN 280 * CHANCE * 282 SC=T2:RETURN 284 = PRINT = 286 POKE646,0:IFLN=16THENPOKE646,4 288 PRINTLEFT$(DN$,LN+4)TAB(19+(4*(PL-1)))RIGHT$(" "+STR$(SC),3) 290 GOSUB302 292 FORL=1TO5:T=VAL(MID$("01112132224",L*2,2)) 294 POKE646,1:IFL=2THENPOKE646,2 296 PRINTLEFT$(DN$,T)TAB(19+(4*(PL-1)))RIGHT$(" "+STR$(SC(PL,L)),3) 298 NEXT:POKESP+21,62:RETURN 300 = BLIP = 302 POKESR,240:POKEWV,17:POKEHF,50:POKELF,35 304 FORL1=1TO99:NEXT:POKEWV,16:POKESR,0:RETURN 306 = BUZZ = 308 POKESR,240:POKEWV,33:POKEHF,5 310 FORL1=1TO150:NEXT:POKEWV,32:RETURN 312 = END GAME = 314 POKESP+21,0:POKE829,234 316 PRINT" PRESS FIRE " 318 FORL1=1TONP:HS=SC(L1,5):IFHS<=PEEK(829+L1*2)*256+PEEK(830+L1*2)THEN322 320 POKE829+L1*2,HS/256:POKE830+L1*2,(HS/256-INT(HS/256))*256 322 NEXT:WAIT56320,16,16:WAIT56320,16,15:RUN 324 = SCREEN = 326 PRINT"[147][182] [176][192][174][176][192][174][176][192][174][176][192][174][176][192][174] [146][207][183][183][183][207][183][183][183][207][183][183][183][207][183][183][183][181][158] " 328 PRINT"[182] [221]Y[221][221]A[221][221]T[221][221]Z[221][221]Y[221] [146][180] [180] [180] [180] [181][158] " 330 PRINT"[182] [173][192][189][173][192][189][173][192][189][173][192][189][173][192][189] [146][204][175][175][175][204][175][175][175][204][175][175][175][204][175][175][175][181][158]UNDO" 332 PRINT"[182][154] HIGH SCORE [146][165] [165] [165] [165] [181][158][183][183][183][183] 334 [153]"ABSSTOPACES........FNSTOPADD FN FN FN FN INT 336 PRINT"[182][144]DEUCES......[165][144]ADD [165] [165] [165] [165] [181] 338 [153]"ABSSTOPTHREES......FNSTOPADD FN FN FN FN INT 340 PRINT"[182][144]FOURS.......[165][144]ADD [165] [165] [165] [165] [181] 342 [153]"ABSSTOPFIVES.......FNSTOPADD FN FN FN FN INT 344 PRINT"[182][144]SIXES.......[165][144]ADD [165] [165] [165] [165] [181] 346 [153]"ABS SUB TOTAL WAITFN FN FN FN INT 348 PRINT"[182] BONUS (63) [146][165]=35 [165] [165] [165] [165] [181] 350 [153]"ABS TOTAL UPPER WAITFN FN FN FN INT 352 PRINT"[182][183][183][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][207][183][183][183][207][183][183][183][207][183][183][183][207][183][183][183][181] 354 [153]"ABSSTOP3 OF A KIND.FNSTOPADD FN FN FN FN INT 356 PRINT"[182][144]4 OF A KIND.[165][144]ADD [165] [165] [165] [165] [181] 358 [153]"ABSSTOPFULL HOUSE..FNSTOP=25 FN FN FN FN INT 360 PRINT"[182][144]SM STRAIGHT.[165][144]=30 [165] [165] [165] [165][160] [181] 362 [153]"ABSSTOPLG STRAIGHT.FNSTOP=40 FN FN FN FN INT 364 PRINT"[182][156]YATZY [146][165][156]=50 [165] [165] [165] [165] [181][129][175][175][175][175] 366 [153]"ABSSTOPCHANCE......FNSTOPADD FN FN FN FN INTFORROLL 368 PRINT"[182] TOTAL LOWER [146][165] [165] [165] [165] [181][129][207][183][183][208] 370 [153]"ABSUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRWAIT(null)USRUSRUSR(null)USRUSRUSR(null)USRUSRUSR(null)USRUSRUSRINTFORFN + 372 PRINT"[182] GRAND TOTAL [146][165] [165] [165] [165] [181][129][165] [167] 374 [153]"ABS WAITINTFOR(null)ANDANDSQRCONT 376 FORL1=1TONP:PRINT"[154]"TAB(15+L1*4)RIGHT$(" "+STR$(HS(L1)),3);:NEXT:RETURN 378 ========== O P T I O N S =========== 380 POKE53281,15:POKE53280,15:NP=1 382 PRINT"[147][156] [176][192][192][192][174][176][192][192][192][174][176][192][192][192][174][176][192][192][192][174][176][192][192][192][174] 384 [153]" (null)(null)(null)WAITSTEP(null)(null)COSPOSLOGWAIT(null)(null)NEW NEWWAIT(null)(null)NEWRNDWAITSTEP(null)(null)(null)(null)WAITSTEP(null) 386 PRINT" [221]  [146] [221][221] [146][197] [146][221][221]  [146][221][221][169][188][146][162][221][221] [146] [221] 388 [153]" /TANTANTANEXP/TANTANTANEXP/TANTANTANEXP/TANTANTANEXP/TANTANTANEXP 390 PRINT" PRESS JOYSTICK [[156]PORT 2] UP OR DOWN 392 [153]" TO CHANGE NUMBER OF PLAYERS 394 PRINT" PRESS [149]FIRE TO PLAY 396 [153]" HOW MANY PLAYERS?VERIFY"; 398 [153][163]27)NP"CMDCMDCMD"; 400 JS[178][194](56320)[175]31:[129]L1[178]1[164]75:[130] 402 [139]JS[178]30[167]NP[178]NP[170]1:[139]NP[178]5[167]NP[178]1 404 [139]JS[178]29[167]NP[178]NP[171]1:[139]NP[178]0[167]NP[178]4 406 [139]JS[179][177]15[167]398 408 [153]"LOAD":[142] 410 [178] INITIALIZE [178] 412 PL[178]1:SP[178]53248:R[178][187]([171]TI) 414 LF[178]54272:HF[178]54273:WV[178]54276:SR[178]54278 416 RN$(1)[178]"STEPWAITGETCMDCMDGETWAITGET" 418 RN$(2)[178]"VAL CMDCMD STR$" 420 RN$(3)[178]"VAL CMDCMDSTR$ " 422 DN$[178]" 424 DIM DI(5),MX(4,20),SC(4,5),HS(4) 426 FORL1=LFTOLF+24:POKEL1,0:NEXT:POKELF+24,15 428 IFPEEK(829)=234THEN434 430 FORL1=0TO511:READA:POKE12288+L1,A:NEXT 432 FORL1=512TO575:POKE12288+L1,.:NEXT:POKE830,0:POKE831,0 434 FORL1=1TO5:POKESP+39+L1,1 436 POKESP+2*L1,52:POKESP+1+2*L1,60+L1*24:REM COLOR,X,Y POS 438 NEXT 440 POKE2040,192:POKESP+39,9:POKESP,30:POKESP+1,212:REM LEFT 442 POKE2047,199:POKESP+46,7:POKESP+14,120:POKESP+15,86:REM RIGHT 444 POKESP+16,127 446 FORL1=1TONP:HS(L1)=PEEK(829+L1*2)*256+PEEK(830+L1*2):NEXT 448 RETURN 450 = SPRITE DATA = 452 * LEFTHAND * 454 DATA000,000,000,000,000,000,000,000 456 DATA096,000,000,224,000,001,192,000 458 DATA003,128,000,007,000,028,014,000 460 DATA014,061,192,007,123,064,007,118 462 DATA224,007,189,160,007,219,112,007 464 DATA222,208,007,221,176,003,255,096 466 DATA003,255,192,001,255,128,001,255 468 DATA000,001,254,000,003,252,000,000 470 * ONE * 472 DATA255,255,255,255,255,255,255,255 474 DATA255,255,255,255,255,255,255,255 476 DATA255,255,255,255,255,255,255,255 478 DATA255,231,255,255,195,255,255,195 480 DATA255,255,231,255,255,255,255,255 482 DATA255,255,255,255,255,255,255,255 484 DATA255,255,255,255,255,255,255,255 486 DATA255,255,255,255,255,255,255,000 488 * TWO * 490 DATA255,255,255,255,255,255,255,255 492 DATA207,255,255,135,255,255,135,255 494 DATA255,207,255,255,255,255,255,255 496 DATA255,255,255,255,255,255,255,255 498 DATA255,255,255,255,255,255,255,255 500 DATA255,255,243,255,255,225,255,255 502 DATA225,255,255,243,255,255,255,255 504 DATA255,255,255,255,255,255,255,000 506 * THREE * 508 DATA255,255,255,255,255,255,255,255 510 DATA207,255,255,135,255,255,135,255 512 DATA255,207,255,255,255,255,255,255 514 DATA255,231,255,255,195,255,255,195 516 DATA255,255,231,255,255,255,255,255 518 DATA255,255,243,255,255,225,255,255 520 DATA225,255,255,243,255,255,255,255 522 DATA255,255,255,255,255,255,255,000 524 * FOUR * 526 DATA255,255,255,255,255,255,243,255 528 DATA207,225,255,135,225,255,135,243 530 DATA255,207,255,255,255,255,255,255 532 DATA255,255,255,255,255,255,255,255 534 DATA255,255,255,255,255,255,255,255 536 DATA255,255,243,255,207,225,255,135 538 DATA225,255,135,243,255,207,255,255 540 DATA255,255,255,255,255,255,255,000 542 * FIVE * 544 DATA255,255,255,255,255,255,243,255 546 DATA207,225,255,135,225,255,135,243 548 DATA255,207,255,255,255,255,255,255 550 DATA255,231,255,255,195,255,255,195 552 DATA255,255,231,255,255,255,255,255 554 DATA255,255,243,255,207,225,255,135 556 DATA225,255,135,243,255,207,255,255 558 DATA255,255,255,255,255,255,255,000 560 * SIX * 562 DATA255,255,255,255,255,255,243,255 564 DATA207,225,255,135,225,255,135,243 566 DATA255,207,255,255,255,255,255,255 568 DATA243,255,207,225,255,135,225,255 570 DATA135,243,255,207,255,255,255,255 572 DATA255,255,243,255,207,225,255,135 574 DATA225,255,135,243,255,207,255,255 576 DATA255,255,255,255,255,255,255,000 578 * RIGHTHAND * 580 DATA000,000,000,000,000,000,006,000 582 DATA000,007,000,000,003,128,000,001 584 DATA192,000,000,224,000,000,112,056 586 DATA003,188,112,002,222,224,007,110 588 DATA224,005,189,224,014,219,224,011 590 DATA123,224,013,187,224,006,255,192 592 DATA003,255,192,001,255,128,000,255 594 DATA128,000,127,128,000,063,192,000